/* 页面onload */
$(function() {
    $("#tabs").tabs();
    
    formBaseLoad();
    
    formDynamicLoad($("#tabs-2-title").text());

    formFeeLoad(checks);
    
    formReminderLoad(reminders);
    
    formDocumentLoad(documents);
    
    /* 填充表单 */
    $.each(foreign, function( key, value ) {
        var e = $("#" + key);
        if (e.is("input[type=checkbox]")) {
            e.prop("checked", e.val() === value);
        } else {
            e.val(value);
        }

        if (key === "tm_sample_url" && value) {
            $('<button class="image-link" href="' + value + '">查看</button>')
                    .magnificPopup({type:'image'}).insertAfter("#tm_sample_path");
        }
    });

});

/**
 * 载入基本信息时调用
 * @returns {undefined}
 */
function formBaseLoad() {
    /* 案件类型 */
    $("#case_type").change(function() {
        $.getJSON(siteUrl + "/foreign/get_dynamic_info", 
            {"case_type" : this.value}, 
            function(data) {
                $("#tabs-2-title").text(data.title);
                $("#tabs-2").html(data.html);
                
                formDynamicLoad(data.title);
            });
    });
    
    /* 日历 */
    bindDatepicker("#file_create_date");
    
    /* 申请人 */
    $("#c_id").chosen({
        disable_search_threshold: 10, // 少于10个就不显示搜索
        no_results_text: "Oops, nothing found!",
        inherit_select_classes: true,
        search_contains: true
    });
    $("#c_id_chosen").removeClass("chosen-container").hide();
    $('<button type="button" id="set_c_name">...</button>')
        .insertAfter("#c_name")
        .click(function() {
            $("#c_name").hide();
            $(this).hide();
            $("#c_id_chosen").addClass("chosen-container").show();
        });
    $("#c_id").change(function () {
        /* 载入申请人信息和联系人信息 */
        $.getJSON(siteUrl + '/trademark/get_client', {"c_id": this.value},
        function (data) {
            var client = data.client;
            $("#c_name").val(client.c_name);
            $("#c_name_en").val(client.c_name_en);
            $("#c_addr").val(client.c_addr);
            $("#c_addr_en").val(client.c_addr_en);
            $("#c_country").val(client.c_country);
            $("#ct_mailing_addr").val(client.c_mailing_addr);

            var contact = data.contact;
            if (contact !== null) {
                $("#ct_contact").val(contact.ct_contact);
                $("#ct_telephone").val(contact.ct_telephone);
                $("#ct_fax").val(contact.ct_fax);
                $("#ct_qq").val(contact.ct_qq);
            }
        });
        $("#c_id_chosen").removeClass("chosen-container").hide();
        $("#c_name").show();
        $("#set_c_name").show();
    });

    /* 代理人 */
    $("#agent").yeSelectableInput();

    /* 合作所 */
    $("#partner").yeSelectableInput(null, function(sender) {
        /* 载入联系人信息 */
        $.getJSON(siteUrl + '/trademark/get_partner', {"p_id": sender.value},
        function (data) {
            var partner = data.partner;
            $("#ct_mailing_addr").val(partner.p_mailing_addr);

            var contact = data.contact;
            if (contact !== null) {
                $("#ct_contact").val(contact.ct_contact);
                $("#ct_telephone").val(contact.ct_telephone);
                $("#ct_fax").val(contact.ct_fax);
                $("#ct_qq").val(contact.ct_qq);
            }
        });
    });
    
    /* 外所 */
    $("#foreign_partner").yeSelectableInput({selectId: "partner_id"}, function(sender) {
        /* 载入联系人信息 */
        $.getJSON(siteUrl + '/trademark/get_partner', {"p_id": sender.value},
        function (data) {
            var partner = data.partner;
            $("#fp_addr").val(partner.p_addr);
            $("#fp_country").val(partner.p_country);

            var contact = data.contact;
            if (contact !== null) {
                $("#fp_contact").val(contact.ct_contact);
                $("#fp_telephone").val(contact.ct_telephone);
                $("#fp_fax").val(contact.ct_fax);
            }
        });
    });
}

/**
 * 动态载入html时调用
 * @param {string} title
 */
function formDynamicLoad(title) {
    /* 日历 */
    bindDatepicker("#tabs-2 input.normal-date");

    if (title === '商标申请') {
        /* 标样上传 */
        bindFileUpload("#tm_sample_name", {
            nameAttr: "id",
            maxSize: "200KB"
        });
    }
}

/**
 * 载入费用统计时调用
 * @param {array} checks 账单数据
 */
function formFeeLoad(checks) {
    /* 日历 */
    bindDatepicker("#collection_date, #billing_date");
    
    /* 确认人，开票人 */
    $("#confirmor, #drawer").yeSelectableInput({
        selectId: "agent_id"
    });
    
    /* 账单表格 */
    $("#table-checks").yeEditableTable(checks, function(cell) {
        var name = $(cell).attr("name");
        if (name === "ck_foreign_amount" || name === "ck_foreign_rate" || name === "ck_fee") {
            computeCells();
        }
    });
    
    /* 收客户费用，公认证费用 */
    $("#custom_fee, #certification_fee").change(function() {
        $("#total_fee").val(yeParseFloat($("#custom_fee").val()) + yeParseFloat($("#certification_fee").val()));
        computeCells();
    });
    
    /* 表单提交 */
    $("form").submit(function() {
        $("#checks").val(JSON.stringify(getChecks()));
    });
}

/* 计算单元格内容 */
function computeCells() {
    var A = yeParseFloat($("#custom_fee").val());
    
    $("#table-checks tbody tr:not(.hide)").each(function(index, element) {
        var C = yeParseFloat($(element).find("td[name=ck_foreign_amount]").text());
        var D = yeParseFloat($(element).find("td[name=ck_foreign_rate]").text());
        var E = yeParseFloat($(element).find("td[name=ck_fee]").text());
        
        var F = C * D + E;
        $(element).find("td[name=ck_total_amount]").text(F);

        A = A - F;
        $(element).find("td[name=ck_balance]").text(A);
    });
}

/* 获取账单 */
function getChecks() {
    var checks = new Array();

    $("#table-checks tbody tr:not(.hide)").each(function(index, element) {
        var check = new Object();
        check.ck_check_no = $(element).find("td[name=ck_check_no]").text();
        check.ck_check_date = $(element).find("td[name=ck_check_date]").text();
        check.ck_currency = $(element).find("td[name=ck_currency]").text();
        check.ck_foreign_amount = $(element).find("td[name=ck_foreign_amount]").text();
        check.ck_foreign_rate = $(element).find("td[name=ck_foreign_rate]").text();
        check.ck_fee = $(element).find("td[name=ck_fee]").text();
        check.ck_total_amount = $(element).find("td[name=ck_total_amount]").text();
        check.ck_remit_date = $(element).find("td[name=ck_remit_date]").text();
        check.ck_remit_detail = $(element).find("td[name=ck_remit_detail]").text();
        check.ck_balance = $(element).find("td[name=ck_balance]").text();
        check.ck_maker = $(element).find("td[name=ck_maker]").text();
        check.ck_confirmor = $(element).find("td[name=ck_confirmor]").text();
        
        checks.push(check);
    });
    
    return checks;
}

/* 载入限时提醒时调用 */
function formReminderLoad(reminders) {
    /* 模板 */
    $("#reminder_template").find("button").click(function() {
        $(this).parents("tbody").remove();
    });
    $("#reminder_template").hide().appendTo("body");
    
    $("#add_reminder").click(function() {
        addReminder();
    });
    
    /* 填充数据 */
    if (reminders) {
        for (var i = 0; i < reminders.length; i++) {
            addReminder(reminders[i]);
        }
    }
}

/* 增加提醒 */
function addReminder(data) {
    var id = "temp_id_8272";
    var tbody = $("#reminder_template").clone(true).attr('id', id).show().appendTo("#reminder_table");
    bindDatepicker("#" + id + " input.normal-date");
    tbody.attr('id', '');
    if (data) {
        $.each(data, function(index, value) {
            tbody.find("input[name^=" + index + "]").val(value);
        });
    }
}

/* 载入官方文件时调用 */
function formDocumentLoad(documents) {
    /* 附件 */
    bindFileUpload("#document_template input[name^=doc_original_name]", {
        nameAttr: "this",
        pathAttr: "next",
        maxSize: "5MB"
    });
    
    /* 模板 */
    $("#document_template").find("button").click(function() {
        $(this).parents("tbody").remove();
    });
    $("#document_template").hide().appendTo("body");
    
    $("#add_document").click(function() {
        addDocument();
    });
    
    /* 填充数据 */
    if (documents) {
        for (var i = 0; i < documents.length; i++) {
            addDocument(documents[i]);
        }
    }
}

/* 增加文件 */
function addDocument(data) {
    var id = "temp_id_8272";
    var tbody = $("#document_template").clone(true).attr('id', id).show().appendTo("#document_table");
    bindDatepicker("#" + id + " input.normal-date");
    
    if (data) {
        $.each(data, function(index, value) {
            tbody.find("input[name^=" + index + "]").val(value);
            if (index === "doc_url" && value) {
                $('<button class="image-link" href="' + value + '">查看</button>')
                        .magnificPopup({type:'image'}).insertAfter("#" + id + " input[type=hidden]");
            }
        });
    }

    tbody.attr('id', '');
}